#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>

//ppid 是父进程的pid
void Runchild()
{
  while(1)
  {
    printf("I am parent, pid: %d, ppid: %d\n", getpid(), getppid());
    sleep(1);
  }
}

int main()
{
//  const int num = 5;
//  
//  int i = 0;
//  for(i = 0; i < num; i++)
//  {
//    pid_t id = fork();
//    if(id == 0)
//    {
//      Runchild();
//    }
//    sleep(1);
//  }
//  while(1)
//  {
//    sleep(1);
//    printf("I am parent, pid: %d, ppid: %d\n", getpid(), getppid());
//  }

//  printf("process is running, only me!, pid: %d\n", getpid());
//  sleep(3);
//  使用fork()函数创建子进程
//  pid_t id = fork();
//  if(id == -1) return 1;
//  else if(id == 0)
//  {
//    while(1)
//    {
//      printf("id: %d, I am child process, pid: %d, ppid: %d\n", id,  getpid(), getppid());
//      sleep(1);
//    }
//  }
//  else
//  {
//    while(1)
//    {
//      printf("id: %d, I am parent process, pid: %d, ppid: %d\n", id,  getpid(), getppid());
//      sleep(2);
//    }
//  }


  // 获取父进程有专门的函数getppid
  pid_t id = getpid();
  pid_t parent = getppid();
  while(1)
  {
    printf("I am a process, pid: %d, ppid: %d\n", id, parent);
    sleep(1);
  }

  return 0;
}
